1. Field of the Invention
The present invention relates to multi-threaded processing.
2. Description of the Related Art
Many processors are designed to reduce idle time by swapping multiple processing threads. A thread is a set of data contents for processor registers and memory and a sequence of instructions to operate on those contents that can be executed independently of other threads. Some instructions involve sending a request or command to another component of the device or system, such as input/output devices or one or more high valued, high-latency components that take many processor clock cycles to respond. Rather than waiting idly for the other component to respond, the processor stores the contents of the registers and the current command or commands of the current thread to local memory, thus “swapping” the thread out, also described as “switching” threads and causing the thread to “sleep.” Then the contents and commands of a different sleeping thread are taken on board, so called “swapped” or “switched” onto the processor, also described as “awakening” the thread. The woken thread is then processed until another wait condition occurs. A thread-scheduler is responsible for swapping threads on or off the processor, or both, from and to local memory. Threads are widely known and used commercially, for example in operating systems for most computers.